cell2start = gfxroom {
   ontimer      = function(s)
                    local gfx = s:loadgfx("flash");
                    if s.last ~= nil then
                      drawing.clean(s.pic, s.last, 0, 361, 600);
                    end
                    if s.len == nil then
                      s.len = table.len(s.coor);
                    end
                    if s._x == nil then
                      s._x = 0;
                    end
                    s._x = s._x + 1;
                    if s._x > s.len then
                      s._x = 1;
                    end
                    s.last = s.coor[s._x];
                    sprite.copy(gfx, s.pic, s.last, 0);
                  end
  ,coor         = { 20, 420, 200, 310, 10, 410, 50, 380, 450 }
  ,stop         = 40
  ,dispose      = nil_("_x")
  ,next         = chain_ {
                    light_(true),
                    walk_("cell2")
                  }
  ,rate         = 60
}

cell2 = scene {
   _bed         = false
  ,checkpoint   = true
  ,obj          = {
                     "cell2_start"
                    ,"cell2_itself"
                    ,"cell2_start2"
                    ,"cell2_noise"
                    ,"cell2_bed"
                    ,"cell2_device"
                    ,"cell2_eyes"
                    ,"cell_devicehandle"
                    ,"cell_shaft"
                    ,"cell_toilet"
                    ,"cell_walls"
                    ,"cell_floor"
                    ,"cell_ceil"
                    ,"cell_door"
                  }
  ,Wait         = [[Я только и делаю, что жду...]]
  ,Exit         = [[Выхода отсюда нет.]]
  ,Stand        = nilfn
  ,Cry          = redirect_("Talk", "cell2_device")
  ,TurnAround   = choose_ {
                     ["default"] = lie
                    ,["cell2_noise._listen>2 and cell2_noise._listen<9"] = redirect_("Exam", "cell2_device")
                  }
  ,before_Default=function(s,v)
                    if (v=="Walk" or v=="Approach" or v=="Stand" or v=="Ascend") and cell2_device._talk==2 then
                      return "Нет, я сейчас не в силах подняться.";
                    end
                  end
}

cell2_start = rooms.event
  [[Я лежу на жёсткой больничной койке, в глаза мне бьёт яркий белый свет, от которого у меня кружится голова. Этот свет горит уже
    много часов подряд, и я даже начинаю скучать по той оглушающей темноте, которая так пугала меня раньше. Я должен дать глазам отдохнуть,
    я устал от этого света. Но когда я опускаю веки, передо мной всё равно стоят эти сверкающие белые стены.^
    Я смог ненадолго заснуть, но сон не придал мне сил -- я чувствую себя измотанным. Кажется, мне снилось что-то, какой-то
    бессмысленный и гнетущий кошмар, искажённые в ночном бреду воспоминания -- институт, в котором я когда-то учился, приёмные экзамены и
    такая реальная, солнечная, почти осязаемая Земля... Но во сне я не испытывал радости -- только страх. Быть может, именно поэтому я и
    чувствую усталость?^
    Хотя пробуждение моё было хуже любого кошмара.^
    Губы у меня потрескались, а горло сильно пересохло -- мне даже больно глотать. Я ничего не ел и не пил уже, кажется, несколько дней.
    Неужели они хотят заморить меня голодом? Или это очередной эксперимент, который я не понимаю?^
    Я встаю с кровати. На какое-то мгновение мне кажется, что пол подо мной вздрагивает и начинает подниматься вверх -- как будто
    вся комната переворачивается навзничь, -- но этот странный морок быстро проходит.^
    Где я? На космическом корабле? Кто-то изменил гравитационный вектор? Или мне просто показалось?^]]

cell2_itself = rooms.dsc
  [[Здесь по-прежнему нет ничего, кроме бесцветных голых стен, от которых исходит раздражающее белое свечение, ровного потолка и холодного
    пола. Моя узкая кровать стоит под вентиляционной решёткой, откуда периодически слышится ровное приглушенное гудение.]]

cell2_start2 = rooms.event
  [[Я пытаюсь прислушаться...]]

cell2_eyes = item {
   nam          = _"глаза"
  ,Close        = [[Нет, это уже не помогает. Даже с закрытыми глазами я продолжаю видеть этот безжалостный свет.]]
  ,Open         = [[Мои глаза открыты.]]
}:like(pEyes)

cell2_noise = item {
   _listen      = 0
  ,nam          = _"гудение|~шум"
  ,Listen       = choose_ {
                     ["default"] =
                        chain_ {
                          inc_("s._listen"),
                          [[Это похоже на сдавленный шум какого-то работающего механизма, причудливо искажённый гортанным металлическим эхом
                            в разветвлённой системе воздуховодов. Но что это? Генераторы кислорода на космической станции? Или низкочастотный
                            гул энергетических установок? Я до сих пор не могу понять, где нахожусь.^
                            Я прислушиваюсь к странному шуму, и мне начинает казаться, что из решётки доносятся чьи-то нечёткие голоса.
                            Я продолжаю слушать.]]
                        }
                    ,["s._listen==1"] =
                        chain_ {
                          inc_("s._listen"),
                          music_("macros",2),
                          [[Я встаю на кровати, однако вентиляционная решётка всё равно находится у меня над головой, и я почти ничего
                            не могу разобрать. Но теперь я уверен, что действительно слышу человеческие голоса -- кто-то громко
                            говорит в другом конце этого здания -- если, конечно, я нахожусь в здании, а не на космическом корабле.^
                            Я отчётливо различаю мужской голос и женский, мужской голос громче и почти срывается на крик -- или мне это только
                            кажется из-за металлического эха в воздуховодах? Но мужской голос действительно становится громче, и я почти уверен,
                            что могу разобрать некоторые слова.^
                            <i>Недостаточно...</i>^
                            <i>Лидия...</i>^
                            Лидия? Значит, она всё-таки здесь!]]
                        }
                    ,["s._listen==2"] =
                        chain_ {
                          inc_("s._listen"),
                          [[Я продолжаю слушать голоса, которые доносятся из вентиляционной решётки, как вдруг за моей спиной раздаётся отчётливое
                            жужжание сервоприводов. Я вздрагиваю.]]
                        }
                    ,["s._listen==3"] = [[Лучше сначала разобраться, что происходит в комнате, прежде чем снова слушать эти голоса.]]
                    ,["s._listen==4"] = 
                        chain_ {
                          inc_("s._listen"),
                          [[Я возвращаюсь назад, залезаю на кровать и снова прислушиваюсь к гулу из вентиляционной решётки, однако никаких голосов
                            больше нет -- они исчезли, утонули в этом ровном монотонном гудении, точно их и не было вовсе. Я несколько минут стою
                            у холодной стены в надежде, что голоса вернутся, как вдруг за спиной вновь раздаётся знакомое механическое жужжание.]]
                        }
                    ,["s._listen==5"] = [[Лучше всё-таки понять, что здесь происходит. За мной следят?]]
                    ,["s._listen==6"] =
                        chain_ {
                          inc_("s._listen"),
                          [[Я не успеваю залезть на кровать, как позади меня снова слышится протяжное гудение сервоприводов.]]
                        }
                    ,["s._listen>6"] =
                        [[Нет, сейчас не до этого. К тому же голоса исчезли, и я всё равно ничего не слышу, кроме гула работающих механизмов.]]
                  }
}:like(pPhenom)

cell2_bed = from_("cell_bed") {
   nam          = _"кровать"
  ,Sit          = choose_ {
                     ["default"] = [[Я и так много часов кряду провёл на этой кровати.]]
                    ,["cell2_device._talk==2"] = 
                        [[Да, всё, что мне остаётся -- это упасть на кровать и попытаться забыться сном... Но я продолжаю стоять посреди комнаты
                          на коленях.]]
                  }
  ,Lie          = choose_ {
                     ["default"] = [[Мне надоело всё время лежать на кровати.]]
                    ,["cell2_device._talk==2"] = redirect_("Sit")
                  }
}

cell2_device = from_("cell_robot") {
   _talk        = 0
  ,nam          = _"робот"
  ,Exam         = choose_ {
                     ["default"] =
                        [[Голова неподвижно висит над комнатой, а её единственный потухший глаз слепо уставился в пол. Антенна, в которую я так
                          удачно попал пластиковым кубом, торчит, свёрнутая набок, точно выломанная конечность. Кажется, за мной сейчас никто не
                          наблюдает.]]
                    ,["cell2_noise._listen==3 or cell2_noise._listen==4"] =
                        chain_ {
                          exec_("cell2_noise._listen=4"),
                          [[Голова всё так же неподвижно висит над комнатой, однако кажется, что её положение немного изменилось, и кронштейн
                            чуть сдвинулся вправо. Но... Я уже ни в чём не уверен. Быть может, шум сервоприводов мне только послышался?]]
                        }
                    ,["cell2_noise._listen==5 or cell2_noise._listen==6"] =
                        chain_ {
                          exec_("cell2_noise._listen=6"),
                          [[Сейчас я почти уверен, что голова робота немного передвинулась. Её потухший электрический взгляд уже не смотрит
                            в пол как раньше, а уставился на мою кровать, по-прежнему упорно притворяясь незрячим. Всё-таки они следят за мной!]]
                        }
                    ,["cell2_noise._listen==7 or cell2_noise._listen==8"] =
                        chain_ {
                          exec_("cell2_noise._listen=8"),
                          [[Голова передвигалась -- в этом нет сомнений. Незрячий электрический глаз теперь уставился прямо на вентиляционную
                            решётку, да и сама голова уже не висит, поникнув, над полом, а как-то хищно вытянулась на своём длинном суставчатом
                            кронштейне. Они следят за мной и наверняка слышат всё, что происходит в комнате!^
                            Меня вдруг начинает трясти от ярости. Это не тест! Это страшное изощрённое издевательство, пытка, которой меня
                            подвергают мои тюремщики. Наверняка и голоса, которые мне слышались, были фальшивыми. Они просто хотят свести меня
                            с ума!^
                            Я едва сдерживаюсь, чтобы не закричать во весь голос. Я раскрыл их садистские планы! У них не выйдет так просто
                            лишить меня рассудка.]]
                        }
                    ,["cell2_noise._listen>8"] = [[Голова передвигалась -- в этом нет сомнений.]]
                  }
  ,Approach     = choose_ {
                     ["default"] = 
                        [[Я подхожу к механической голове и тут же вспоминаю про свой куб. Я ведь так и не подобрал его. Я начинаю осматривать 
                          камеру в поисках пластикового куба, даже заглядываю под кровать, но нигде его не нахожу. Он ведь не мог просто так
                          исчезнуть. Возможно, кто-то заходил в мою камеру, пока я спал?]]
                    ,["cell2_noise._listen==3 or cell2_noise._listen==4"] =
                        chain_ {
                          exec_("cell2_noise._listen=4"),
                          [[Я подхожу к застывшей над комнатой голове и внимательно рассматриваю её. Электрический глаз по-прежнему не горит,
                            сломанная антенна всё так же свёрнута на бок.^
                            Нет, наверное, мне просто послышалось.]]
                        }
                    ,["cell2_noise._listen==5 or cell2_noise._listen==6"] =
                        chain_ {
                          exec_("cell2_noise._listen=6"),
                          [[Я несколько минут хожу вокруг висящей над комнатой головы робота. Нет, это точно не мои галлюцинации. Кронштейн
                            двигался, я слышал это! Но почему сейчас они пытаются скрывать своё присутствие? Это снова какой-то тест?]]
                        }
                    ,["cell2_noise._listen==7 or cell2_noise._listen==8"] =
                        chain_ {
                          exec_("cell2_noise._listen=8"),
                          [[Я встаю под металлической головой и смотрю прямо в её электрический глаз.^
                            Я едва сдерживаюсь, чтобы не закричать во весь голос. Я раскрыл их садистские планы! У них не выйдет так просто
                            лишить меня рассудка.]]
                        }
                    ,["cell2_noise._listen>8"] = [[Я встаю под металлической головой и смотрю прямо в её электрический глаз.]]
                  }
                  
  ,Move         = [[Не вижу смысла передвигать механическую голову, да и я всё равно не смогу до неё дотянуться.]]
  ,Wreck        = [[Сомневаюсь, что у меня это получится.]]
  ,Ascend       = [[Не думаю, что мне это чем-то поможет. Да и залезть на голову робота у меня, скорее всего, не получится.]]
  ,Take         = redirect_("Wreck")
  ,Talk         = choose_ {
                     ["default"] = 
                        [[-- Вы здесь? -- выкрикиваю я в потолок.^Мне никто не отвечает.]]
                    ,["cell2_noise._listen>6"] =
                        choose_ {
                           ["default"] =
                              chain_ {
                                inc_("s._talk"),
                                [[-- Да кто вы такие? -- кричу я, встав под нависшей над комнатой механической головой и глядя в её слепой глаз. 
                                  -- Что здесь происходит?^
                                  Но мне никто не отвечает.^
                                  -- Что здесь происходит? -- повторяю я. -- Зачем всё это нужно? Что вы хотите?]]
                              }
                          ,["s._talk==1"] =
                              chain_ {
                                inc_("s._talk"),
                                [[Голова по-прежнему неподвижно висит над комнатой.^
                                  -- Я требую объяснений! -- продолжаю кричать я. -- Если я военнопленный... если я...^
                                  Внезапно я чувствую слабость и падаю на колени.^
                                  -- Пожалуйста, -- вдруг говорю я, и голос мой дрожит, точно готов сорваться на плач. -- Пожалуйста!^
                                  Но мне не отвечают.]]
                              }
                          ,["s._talk==2"] =
                              chain_ {
                                inc_("s._talk"),
                                [[-- Пожалуйста! -- продолжаю молить я, едва сдерживая слезы.^
                                  Я закрываю лицо руками.^
                                  -- Хотя бы выключите этот свет! Я прошу вас! И дайте мне хоть один глоток воды! Я... я сделаю всё,
                                  что вы просите...]]
                              }
                          ,["s._talk==3"] =
                              chain_ {
                                mute_(0,0),
                                walk_("cell3start")
                              }
                        }
                  }
  ,Listen       = [[Робот сейчас не издаёт ни звука.]]
}:like(pBuild)
